// 项目模块测试代码

#include <iostream>
#include <vector>
#include <string>
#include "util.hpp"
#include "config.hpp"
#include "datamanage.hpp"
#include "hotmanage.hpp"
#include "service.hpp"

// int main(int argc,char** argv)
// {
//     cloud::FileUtil file(argv[1]);
//     std::cout<<file.FileName()<<std::endl;
//     std::cout<<file.FileSize()<<std::endl;
//     std::cout<<file.FileModTime()<<std::endl;
//     std::cout<<file.FileAccTime()<<std::endl;
//     return 0;
// }

// int main()
// {
//     cloud::FileUtil ifs("./example.cc");
//     std::string body;
//     ifs.GetContent(&body);
//     cloud::FileUtil ofs("./tmp.txt");
//     ofs.SetContent(body);
//     return 0;
// }
    

// int main()
// {
//     std::string packname("./com.lz");
//     std::string upackname("./com.txt");

//     cloud::FileUtil pf("./example.cc");
//     pf.Compress(packname);
//     cloud::FileUtil upf(packname);
//     upf.UnCompress(upackname);
//     return 0;
// }

// int main()
// {
//     cloud::FileUtil dir("./test");
//     dir.CreateDirectory();
//     std::vector<std::string> array;
//     dir.ScanDirectory(&array);
//     for(auto& d:array)
//     {
//         std::cout<<d<<std::endl;
//     }
//     return 0;
// }

// int main()
// {
//     const char* name = "小明";
//     int age = 20;
//     double  arr[] = {88,88.9,100};
//     Json::Value sal;
//     sal["姓名"] = name;
//     sal["年龄"] = age;
//     for(auto& n:arr) sal["成绩"].append(n);

//     std::string salstr;
//     cloud::JsonUtil::Serialize(sal,&salstr);
//     std::cout<<salstr<<std::endl;
//     std::cout<<"---------------------------------------------------"<<std::endl;
//     Json::Value usal;
//     cloud::JsonUtil::UnSerialize(salstr,&usal);
//     std::cout<<usal["姓名"]<<std::endl;
//     std::cout<<usal["年龄"]<<std::endl;
//     for(auto& n:sal["成绩"]) std::cout<<n<<std::endl;

//     return 0;
// }

// int main()
// {
//     cloud::Config::ptr conf(cloud::Config::GetInstance());
//     //cloud::Config* conf = cloud::Config::GetInstance();
//     std::cout<<conf->GetHotTime()<<std::endl;
//     std::cout<<conf->GetServerPort()<<std::endl;
//     std::cout<<conf->GetServerIP()<<std::endl;
//     std::cout<<conf->GetDownloadPrefix()<<std::endl;
//     std::cout<<conf->GetBackDir()<<std::endl;
//     std::cout<<conf->GetPackDir()<<std::endl;
//     std::cout<<conf->GetPackfileSuffix()<<std::endl;
//     std::cout<<conf->GetBackUpFile()<<std::endl;
//     return 0;
// }

// int main(int argc,char** argv)
// {
//     cloud::BackupInfo buif(argv[1]);
//     std::cout<<buif.pack_flag<<std::endl;
//     std::cout<<buif.fsize<<std::endl;
//     std::cout<<buif.atime<<std::endl;
//     std::cout<<buif.mtime<<std::endl;
//     std::cout<<buif.real_path<<std::endl;
//     std::cout<<buif.pack_path<<std::endl;
//     std::cout<<buif.url_path<<std::endl;

//     return 0;
// }

// void print(const cloud::BackupInfo& buif)
// {
//     std::cout<<buif.pack_flag<<std::endl;
//     std::cout<<buif.fsize<<std::endl;
//     std::cout<<buif.atime<<std::endl;
//     std::cout<<buif.mtime<<std::endl;
//     std::cout<<buif.real_path<<std::endl;
//     std::cout<<buif.pack_path<<std::endl;
//     std::cout<<buif.url_path<<std::endl;
// }

// int main()
// {
//     cloud::DataManager data;
//     std::string s[] = {"./bundle.h","./config.hpp","./example.cc"};
//     for(auto& str:s) data.Insert(cloud::BackupInfo(str));

//     std::cout<<"-----------------------------------------\n";
//     cloud::BackupInfo tmp;
//     data.GetOneByUrl("/download/bundle.h",&tmp);
//     print(tmp);
//     std::cout<<"-----------------------------------------\n";

//     tmp.pack_flag = 1;
//     data.Update(tmp);
//     data.GetOneByUrl("/download/bundle.h",&tmp);
//     print(tmp);
//     std::cout<<"-----------------------------------------\n";

//     std::vector<cloud::BackupInfo> info;
//     data.GetAll(&info);
//     for(auto& n:info) print(n);

//     return 0;
// }

// int main()
// {
//     cloud::DataManager data;
//     //std::string s[] = {"./bundle.h","./config.hpp","./example.cc","./util.hpp"};
//     //for(auto& str:s) data.Insert(cloud::BackupInfo(str));
//     //data.Storage();
//     std::vector<cloud::BackupInfo> info;
//     data.GetAll(&info);
//     for(auto& n:info) print(n);
//     return 0;
// }

//cloud::DataManager* _datam = nullptr;
// int main()
// {
//     _datam = new cloud::DataManager();
//     cloud::HotManage hm;
//     hm.RunModule();
//     return 0;
// }


// cloud::DataManager* _datam = nullptr;
// int main()
// {
//     _datam = new cloud::DataManager();
//     cloud::Service ser;
//     ser.RunModule();
//     return 0;
// }
